import os
import random
import datetime
from entity import organizations as o


def randomNumber(len: int) -> str:
    """
    生成指定长度的随机数字字符串（不含前导零）。
    :param len: length (int): 要生成的随机数字字符串的长度（必须大于0）
    :return: str: 随机数字字符串
    """
    first = str(random.randint(1, 9))
    last = "".join(random.sample("1234567890", len - 1))
    return first + last

#随机生成与特征码长度相等的数字
def randomCode():
    """
    生成指定长度的随机数字字符串作为特征码。
    :return: str: 指定长度的随机数字字符串
    """
    return randomNumber(o.CODE_LEN)

def valid_time(time_str: str) -> bool:
    """
    校验字符串是否符合"HH:MM:SS"时间格式
    :param time_str: 需要校验的时间字符串
    :return: bool: 符合格式返回True，否则返回False
    """
    try:
        datetime.datetime.strptime(time_str, "%H:%M:%S")
        return True
    except:
        return  False


def valid_year_month(str):
    """
    校验字符串是否符合"YYYY-MM"时间格式
    :param str: 需要校验的年月字符串
    :return: bool: 符合格式返回True，否则返回False
    """
    try:
        datetime.datetime.strptime(str, "%Y-%m")
        return True
    except:
        return False

def valid_data(data):
    """
    校验字符串是否符合"YYYY-MM-DD"时间格式
    :param data: 需要校验的日期字符串
    :return: bool: 符合格式返回True，否则返回False
    """
    try:
        datetime.datetime.strptime(data, "%Y-%m-%d")
        return True
    except:
        return False
